Many enterprises, such as companies, corporations, and organizations are creating and deploying data warehouses to service their data collection and retrieval needs. As referred herein, a data warehouse is a database, data storage, or data repository that includes one or more electrical or electronic data storage devices such as computers, servers, computerized databases such as database management systems (DBMS'es), and the like. As known in the art, a data warehouse supports software applications with tremendous reliability, scalability, functionality, and availability. In turn, applications therein are constantly calling for new capabilities from data warehouses and databases therein. For example, emergent applications for automated mapping, facilities management, geographic information system (GIS), wireless location services, and location-aware e-businesses all desire databases to handle the generation, storage, and analysis of geographic features (e.g., geographic locations and/or regions). Typically these geographic features are stored as spatial or geometry data in databases. Thus, it is desirable for these databases to handle location- or geometry-based queries of spatial data and other spatial functions, raising further demands for efficient multidimensional indexing and partitioning technologies. Hereinafter, the term “geometry” and “spatial” are used interchangeably.
There exist solutions for handling spatial data types and functions and accessing spatial data in a database system. However, these solutions are implemented within the database system through the addition of new system modules or extensions. If more and more domain-specific modules (or extensions) are inserted into the database system to add domain-specific functionalities, they may create complications to other components in the database system. For example, internalizing these new modules in a database system may interfere with typical components that already exist therein, such as the query optimizer, the statistic generator, and the executor. Furthermore, conventional domain-specific modules are designed and implemented for a specific database system, and they are not typically supported by parallel databases. Thus, it may not be possible to port these modules between different database systems, particularly, parallel database systems, so as to re-use them instead of creating new ones for each different database system.
Accordingly, there is a desire to enhance data warehouses with spatial extensions to handle and support spatial data types and functions in order to provide effective data warehouses with added capabilities such as scalability and interoperability.